{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 环境安装\n",
    "- 推荐Virtualbox + Ubuntu\n",
    "- 套件推荐 Anaconda3+pycharm\n",
    "- 如果机器内存大于4G，推荐虚拟机下启动系统\n",
    "- 小于4G的话，推荐用Windows下的 Anaconda+pycharm\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Hello world\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'\\n这里边任何内容机器都不管了\\n我可以写好多\\n好多\\n'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 代码的作用\n",
    "# 1. 给人看\n",
    "# 2. 给机器看\n",
    "# 注释是纯给人看的内容\n",
    "print(\"Hello world\") #打印hellow world出来\n",
    "'''\n",
    "这里边任何内容机器都不管了\n",
    "我可以写好多\n",
    "好多\n",
    "'''"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 注释\n",
    "- 机器不去执行注释内容\n",
    "- 注释一般用自然语言书写\n",
    "- 注释的写法：\n",
    "    - 行注释： 以井号开头，可以单独行，也可以在某行代码后边\n",
    "    - 块注释： 好几行代码或者内容，以三个连续单引号或双引号开始和结束，中间任何内容机器都忽略"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 变量\n",
    "- 程序=数据结构+算法\n",
    "- 变量就是可以重复使用的一个量，或者叫一个代号\n",
    "- 变量命名的规则\n",
    "    - 变量命名可以包含数字，大小写字母，下划线或者更多，但是我们不推荐除了前三种内容之外的符号\n",
    "    - 数字不可以打头\n",
    "        - 4man, 5for 是不可以的\n",
    "        - man4, for5是可以的\n",
    "    - 一般在python中，以下划线开头的内容具有特殊含义，不建议使用\n",
    "        - 比如 _age, _name，理论可以，但强烈不推荐，包括但不限于一个下划线开头和两个连续下划线开头\n",
    "    - 大小写不一样，俗称大小写敏感\n",
    "        - ForMan 跟 forMan不是一个变量名称\n",
    "    - 推荐：\n",
    "        - 使用具有固定含义的英文单词或者缩写， srv=server skt=socket,一般以posix命名规则为主\n",
    "        - 驼峰命名法\n",
    "            - 名称以单词自动连接，且每个单词首字母大写\n",
    "                - 大驼峰，每个单词第一个字母均大写\n",
    "                    - 在Python中给类命名使用此法\n",
    "                    - MyFirstLove, IntOne\n",
    "                - 小驼峰，类似大驼峰，但第一个字母小写\n",
    "                    - 在Python中一般给普通变量或者函数命名\n",
    "                    - myFirstLove, intOne\n",
    "                - posix写法\n",
    "                    - 多个单词用下划线链接\n",
    "                    - 单词全部小写\n",
    "                    - my_first_love, int_one\n",
    "    - 保留字和关键字\n",
    "        - 变量命名必须避开，不能跟关键字和保留字重复\n",
    "        - class， def， break，for"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']\n"
     ]
    }
   ],
   "source": [
    "# 查看关键字的方法\n",
    "import keyword #引入关键字模块\n",
    "# 打印出系统全部关键字\n",
    "print(keyword.kwlist)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##　变量声明\n",
    "- var_name = var_value\n",
    "- var1 = var2 = var3 = var_value\n",
    "- var1, var2, var3 = v1, v2, v3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18\n",
      "18\n",
      "18\n",
      "18\n",
      "18\n",
      "12\n",
      "21\n",
      "45\n"
     ]
    }
   ],
   "source": [
    "# 定义变量ａｇｅ，把１８放入变量ａｇｅ中\n",
    "age = 18\n",
    "print(age)\n",
    "print(18)\n",
    "\n",
    "# 给age1， age2， age3 放入同样一个内容或值\n",
    "age1 = age2 = age3 = 18\n",
    "print(age1)\n",
    "print(age2)\n",
    "print(age3)\n",
    "\n",
    "# 一行内给多个变量赋值\n",
    "age4, age5, age6 = 12, 21, 45\n",
    "print(age4)\n",
    "print(age5)\n",
    "print(age6)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 变量类型\n",
    "- 严格意义上讲，python只有一个类型\n",
    "- 标准数据一共六种\n",
    "    - 数字类型Number\n",
    "    - 字符串类型str\n",
    "    - 列表list\n",
    "    - 元组tuple\n",
    "    - 字典 Dictionary\n",
    "    - 集合 set"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Number数字类型\n",
    "- 数字类型没有大小限制\n",
    "### 整数\n",
    "- 没有小数部分，表示个数的数字\n",
    "- 自然数，0，负自然数\n",
    "- 整数分进制\n",
    "    - 二进制\n",
    "        - 计算机常用\n",
    "        - 是计算机唯一能直接理解的数字\n",
    "        - 表示为0b开头的0,1代码\n",
    "        - 例如 0b01101, 0b10001\n",
    "    - 八进制\n",
    "        - 不常用\n",
    "        - 以0o开头的包含0-7的数字\n",
    "    - 十六进制\n",
    "        - 缝16进1\n",
    "        - 其实是每四位二进制表示一位十六进制数\n",
    "        - 包含0-9， a-f\n",
    "        - 数字上以0x开头表示\n",
    "    - 十进制\n",
    "        - 18， 89， 178\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18\n",
      "18\n",
      "66\n",
      "255\n"
     ]
    }
   ],
   "source": [
    "age = 18\n",
    "print(18)\n",
    "\n",
    "age = 0b10010\n",
    "print(age)\n",
    "\n",
    "age = 0o102\n",
    "print(age)\n",
    "\n",
    "age = 0xff #十六进制ff表示二进制的1111 1111\n",
    "print(age)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 浮点数\n",
    "- 小数\n",
    "- 计算机里边表示浮点数可以有条件省略\n",
    "- 3.1415\n",
    "- 3.\n",
    "- 0.5\n",
    "- .5\n",
    "- 科学计数法\n",
    "    - 定义跟数学定义\n",
    "    - 写法是用e/E后面跟整数表示10的指数\n",
    "    - 176.23 == 1.7634e2\n",
    "    - 0.876 == 8.76e-1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "156.34\n",
      "0.2\n",
      "0.6\n"
     ]
    }
   ],
   "source": [
    "height = 156.34\n",
    "print(height)\n",
    "\n",
    "shili = .2\n",
    "print(shili)\n",
    "\n",
    "shili = .6\n",
    "print(shili)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 复数complex\n",
    "- 定义同数学定义一致\n",
    "- 一个由实部和虚部构成的数字\n",
    "- 虚部用j/J表示\n",
    "- 5+3j\n",
    "- 3j\n",
    "- （3j）\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 布尔值\n",
    "- 表示真假的值\n",
    "- 只有两个值， True/False\n",
    "- 布尔值可以跟数字直接操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "19\n"
     ]
    }
   ],
   "source": [
    "#布尔值操作\n",
    "age = 18 + True\n",
    "print(age)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 字符串\n",
    "- 用来表示一串文字信息\n",
    "- 如何表示\n",
    "    - 单引号\n",
    "    - 双引号\n",
    "    - 三引号（三个单引号或者三个双引号）\n",
    "        - 能够扩起多行信息\n",
    "- 单双引号交错使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "i love wangxiaojing\n",
      "我爱王晓静\n",
      "\n",
      "i love wangxiaojing\n",
      "我爱王晓静\n",
      "哈哈哈哈哈\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "love = \"i love wangxiaojing\"\n",
    "print(love)\n",
    "\n",
    "love = '我爱王晓静'\n",
    "print(love)\n",
    "\n",
    "# 单双引号交错使用的例子\n",
    "# <a style=\"color:red\"> 哈哈哈</a>\n",
    "# 用引号表示上面字符串\n",
    "html = 'a style=\"color:red\">哈哈哈</a>'\n",
    "\n",
    "\n",
    "htmls =  '''\n",
    "i love wangxiaojing\n",
    "我爱王晓静\n",
    "哈哈哈哈哈\n",
    "\n",
    "'''\n",
    "\n",
    "print(htmls)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
